%pylab inline
from IPython.core.display import HTML
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit"
value="Click here to toggle on/off the raw code."></form>''')
rc('text', usetex=True) # az abran a xticks, yticks fontjai LaTeX fontok lesznek
#from sympy.mpmath import *
import mpmath as mpmath
from scipy.integrate import * # az integráló rutinok betöltése
from ipywidgets import * # az interaktivitásért felelős csomag
from scipy.integrate import quad as scipy_quad
from scipy.special import gamma as scipy_gamma
import matplotlib.pyplot as plt
def fsz(s,z,cutoff=300):
'''
Numerical integration based alternative to sympy built in symbolic based Fermi integral
practically suited for large arguments.
'''
y, err = scipy_quad(lambda x,s,z : x**(s-1)*z/(exp(x)+z) , 0, cutoff, args=(s,z))
return y/scipy_gamma(s)
# Abra es fontmeretek
xfig_meret= 9 # 12 nagy abrahoz
yfig_meret= 6 # 12 nagy abrahoz
xyticks_meret= 15 # 20 nagy abrahoz
xylabel_meret= 21 # 30 nagy abrahoz
legend_meret= 21 # 30 nagy abrahoz
(Cserti József, ELTE Komplex Rendszerek Fizikája Tanszék, 2017. március)
Fermi-Dirac integrál:
\begin{align} f_{s}(z) &=\frac{1}{\Gamma(s)}\,\intop_{0}^{\infty}\frac{x^{s-1}dx}{\frac{1}{z}e^{x}+1}\label{eq:g_s_z}. \end{align}A $f_s(z)$ függvény kifejezhető az irodalomban ismert $Li_s(z)$ polylogaritmus függvénnyel (Polylogarithm function):
Npoint =50
zmax =10
zlist=linspace(0,zmax,Npoint) #mintavételezési pontok legyártása
f3p2=[]
f5p2=[]
for zz in zlist:
#poly1=mpmath.polylog(1.5,1)
poly2=-(mpmath.polylog(1.5,-zz)).real
poly3=-(mpmath.polylog(2.5,-zz)).real
f3p2.append(poly2)
f5p2.append(poly3)
figsize(xfig_meret,yfig_meret)
plot(zlist,f3p2,label='$f_{3/2}(z)$',lw=3,color='red'),
plot(zlist,f5p2,label='$f_{5/2}(z)$',lw=3,color='blue',ls='--')
legend(loc='upper left',fontsize=legend_meret)
xlabel('$z$',fontsize=xylabel_meret)
ylabel('$f_{3/2}(z), f_{5/2}(z)$',fontsize=xylabel_meret);
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,9.4)
ylim(0,5.4)
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_10.eps'); # Abra kimentese
Npoint =500
logzmax=27
logzmin=-1
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
mu=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
except:
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
#poly1p2=-float(mpmath.polylog(0.5,-z).real)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
#print(z,tt)
Tlist.append(tt) # homerseklet
mu.append(tt * log(z)) # kemiai potencial
# Low temperature approximation
Npoint =30
tmaxL=0.5
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
mulist_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
mulist_approxL.append(1-pi**2/12 *tt**2 ) # kemiai potencial
figsize(xfig_meret,yfig_meret)
legend_meret1=0.8*legend_meret
plot(Tlist_Low,mulist_approxL,label=r'$\frac{\mu(T)}{k_B T_\mathrm{F}} \approx 1-\frac{\pi^2}{12}\, t^2, \,\, T \ll T_\mathrm{F}$',lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist,mu,label=r'$\frac{\mu(T)}{k_B T_\mathrm{F}}$',lw=3,color='red')
legend(loc='lower left',fontsize=legend_meret1)
annotate(r'$\mu_{k\ddot {o}z}$'
,xy=(1.9,-1.2), xytext=(1.2, -2.5), arrowprops=dict(color='green',width=.5),fontsize=legend_meret)
xlabel('$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\frac{\mu(T)}{k_B T_\mathrm{F}}$',fontsize=xylabel_meret,rotation ='horizontal')
# Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,1.15)
ylim(-0.5,1.15)
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.53); # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_15.eps'); # Abra kimentese
Npoint =500
logzmax=27
logzmin=-1
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
Elist=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
except:
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
#poly1p2=-float(mpmath.polylog(0.5,-z).real)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
#print(z,tt)
Tlist.append(tt) # homerseklet
tmp2=3/2*tt*poly5p2/poly3p2 # energia
Elist.append(tmp2)
# Low temperature approximation
Npoint =30
tmaxL=0.4
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
Elist_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
Elist_approxL.append(3/5*(1+5*pi**2/12 *tt**2 )) # energia
# High temperature approximation
Npoint =30
tminH=0.2
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
Elist_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
Elist_approxH.append(1/2/sqrt(2*pi*tt)+3/2*tt) # energia
figsize(xfig_meret,yfig_meret)
plot(Tlist,Elist,label='$E(T)$',lw=3,color='red',ls='-')
plot(Tlist_Low,Elist_approxL,
label=r'$E_\mathrm{low}(t) \approx \frac{3}{5}\,\left(1+\frac{5\pi^2}{12} \, t^2 \right)$',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist_High,Elist_approxH,color='green',
lw=3,linestyle='--',
label=r'$E_\mathrm{high}(t) \approx \frac{3t}{2}+\frac{1}{2\sqrt{2\pi}}\, \frac{1}{\sqrt{t}}$')
legend(loc='lower right',fontsize=legend_meret);
xlabel('$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\frac{E}{N k_B T_\mathrm{F}}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,1.22)
ylim(0,2.15)
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.65); # ylabel position
#title(r'$E(T)$ ', fontsize=20)
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_20.eps'); # Abra kimentese
Npoint =500
logzmax=27
logzmin=-1
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
Slist=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
except:
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
#poly1p2=-float(mpmath.polylog(0.5,-z).real)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
Tlist.append(tt) # homerseklet
Slist.append(5/2*poly5p2/poly3p2-log(z)) # entropia
# Low temperature approximation
Npoint =30
tmaxL=0.4
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
Slist_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
Slist_approxL.append(pi**2/2 *tt ) # entropia
# High temperature approximation
Npoint =30
tminH=0.5
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
S_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
### S high meg nem jo !!!!!
#S_approxH.append(3/2*log(tt) +1/6/sqrt(2*pi)*tt**(-3/2)) # S entropia
figsize(xfig_meret,yfig_meret)
legend_meret1=0.8*legend_meret
plot(Tlist_Low,Slist_approxL,label=r'$S(T) \approx \frac{\pi^2}{2}\, t, \,\, T \ll T_\mathrm{F}$',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist,Slist,label='$S(T)$',lw=3,color='red')
#plot(Tlist_High,cV_approxH,color='green',
# lw=3,linestyle='--',
# label=r'$S_{\mathrm{high}}(t) \approx \frac{3}{2}-\frac{t^{-3/2}}{4\sqrt{2\pi}}$')
legend(loc='lower right',fontsize=legend_meret1)
xlabel(r'$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\frac{S(T)}{k_B T_\mathrm{F}}$',fontsize=xylabel_meret,rotation ='horizontal')
# Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret)
xlim(0,1.02)
ylim(0,3.057)
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.53); # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_35.eps'); # Abra kimentese
Npoint =500
logzmax=27
logzmin=-1
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
cV=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
poly1p2=-float(mpmath.polylog(.5,-z).real)
except:
poly1p2=fsz(.5,z)
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
Tlist.append(tt) # homerseklet
cV.append(15/4*poly5p2/poly3p2-9/4*poly3p2/poly1p2) # c_V fajfo
# Low temperature approximation
Npoint =30
tmaxL=0.25
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
cV_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
cV_approxL.append(pi**2/2 *tt ) # c_V fajho
# High temperature approximation
Npoint =30
tminH=0.5
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
cV_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
cV_approxH.append(3/2-tt**(-3/2)/4/sqrt(2*pi)) # c_V fajho
figsize(xfig_meret,yfig_meret)
plot(Tlist,cV,label='$C_V(T)$',lw=3,color='red',ls='-')
plot(Tlist_Low,cV_approxL,
label=r'$C_{V,\mathrm{low}}(t) \approx \frac{\pi^2}{2} \, t $',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist_High,cV_approxH,color='green',
lw=3,linestyle='--',
label=r'$C_{V,\mathrm{high}}(t) \approx \frac{3}{2}-\frac{t^{-3/2}}{4\sqrt{2\pi}}$')
legend(loc='lower right',fontsize=legend_meret)
xlabel('$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\frac{C_V}{N k_B}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
#xlim(0,tmaxH)
xlim(0,2.5)
ylim(0,1.5)
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.53) # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_40.eps'); # Abra kimentese
Npoint =500
logzmax=27
logzmin=-2
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
cp=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
poly1p2=-float(mpmath.polylog(.5,-z).real)
except:
poly1p2=fsz(.5,z)
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
#poly1p2=-float(mpmath.polylog(0.5,-z).real)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
#print(z,tt)
Tlist.append(tt) # homerseklet
tmp2=25/4*poly5p2**2*poly1p2/(poly3p2)**3-15/4*poly5p2/poly3p2 # c_p fajho
cp.append(tmp2)
# Low temperature approximation
Npoint =20
tmaxL=0.35
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
cp_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
cp_approxL.append(pi**2/2 *tt ) # energia
# High temperature approximation
Npoint =30
tminH=1.3
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
cp_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
cp_approxH.append(5/2*(1-tt**(-3/2)/2/sqrt(2*pi))) # c_p fajho
figsize(xfig_meret,yfig_meret)
plot(Tlist,cp,label='$C_p(T)$',lw=3,color='red',ls='-')
plot(Tlist_Low,cp_approxL,
label=r'$C_{p,\mathrm{low}}(t) \approx \frac{\pi^2}{2} \, t $',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist_High,cp_approxH,color='green', lw=3,linestyle='--',
label=r'$C_{p,\mathrm{high}}(t) \approx \frac{5}{2}\left(1-\frac{t^{-3/2}}{2\sqrt{2\pi}} \right)$')
legend(loc='lower right',fontsize=legend_meret)
xlabel('$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\frac{C_p}{N k_B}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
#xlim(0,tmaxH)
xlim(0,4.)
ylim(0,2.5)
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.53) # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_50.eps'); # Abra kimentese
Npoint =500
logzmax=27
logzmin=-2
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
cp_cV=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
poly1p2=-float(mpmath.polylog(.5,-z).real)
except:
poly1p2=fsz(.5,z)
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
Tlist.append(tt) # homerseklet
cp_cV.append(5/3*poly5p2*poly1p2/(poly3p2)**2) # c_p/c_V arany
# Low temperature approximation
Npoint =10
tmaxL=0.3
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
cp_cV_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
cp_cV_approxL.append(1+pi**2/3 *tt**2 ) # c_p/c_V fajho arany
# High temperature approximation
Npoint =20
tminH=1.2
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
cp_cV_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
cp_cV_approxH.append(5/3*(1-tt**(-3/2)/3/sqrt(2*pi))) # c_p/c_V fajho arany
figsize(xfig_meret,yfig_meret)
plot(Tlist,cp_cV,label=r'$\frac{C_p}{C_V}$',lw=3,color='red')
plot(Tlist_Low,cp_cV_approxL,
label=r'$\frac{C_p}{C_V} \approx 1+\frac{\pi^2}{3} \, t^2 $',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist_High,cp_cV_approxH,color='green', lw=3,linestyle='--',
label=r'$\frac{C_p}{C_V} \approx \frac{5}{3}\left(1-\frac{t^{-3/2}}{3\sqrt{2\pi}} \right)$')
legend(loc='lower right',fontsize=legend_meret)
axhline(y=1.666, xmin=0, xmax = 2, linewidth=2, ls='dashed', color='k')
#annotate(r'$\frac{5}{3}$', xy=(1.1,1.66), xytext=(.15, 1.46),fontsize=legend_meret)
xlabel(r'$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\frac{C_p}{C_V}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,4)
ylim(0,5/3+0.1)
ax = gca()
ax.yaxis.set_label_coords(-.07, 0.52) # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_70.eps'); # Abra kimentese
$\kappa_S =-\frac{1}{V}\, \left. \frac{\partial V}{\partial p}\right| _{S,N}$
ahol $n=N/V$.
Npoint =500
logzmax= 7
logzmin=-1
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
kappa_S=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
poly1p2=-float(mpmath.polylog(.5,-z).real)
except:
poly1p2=fsz(.5,z)
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
Tlist.append(tt) # homerseklet
kappa_S.append(3/5*poly3p2/poly5p2/tt)
# kappa_S kompreszibilitas
# Low temperature approximation
Npoint =10
tmaxL=0.25
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
kappaS_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
kappaS_approxL.append(3/2*(1-5*pi**2/12 *tt**2) ) # kappa_S
# High temperature approximation
Npoint =20
tminH=1.2
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
kappaS_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
kappaS_approxH.append(3/5/tt ) # kappa_S
figsize(xfig_meret,yfig_meret)
plot(Tlist,kappa_S,label=r'$\kappa_S(T)$',lw=3,color='red')
plot(Tlist_Low,kappaS_approxL,
label=r'$\kappa_{S,\mathrm{low}} \approx \frac{3}{2} \left(1-\frac{5\pi^2}{12} \, t^2 \right)$',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist_High,kappaS_approxH,color='green', lw=3,linestyle='--',
label=r'$\kappa_{S,\mathrm{high}} \approx \frac{3}{5t}$')
legend(loc='upper right',fontsize=legend_meret)
xlabel('$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\kappa_S(T)\, n k_B T_\mathrm{F}$',fontsize=xylabel_meret,rotation ='vertical')
# Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,tmaxH)
ylim(0,1.55)
ax = gca()
ax.yaxis.set_label_coords(-.05, 0.45); # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_55.eps'); # Abra kimentese
$\kappa_T =-\frac{1}{V}\, \left. \frac{\partial V}{\partial p}\right| _{T,N}$
ahol $n= N/V$.
Npoint =500
logzmax= 7
logzmin=-1
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
kappa_T=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
poly1p2=-float(mpmath.polylog(.5,-z).real)
except:
poly1p2=fsz(.5,z)
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
Tlist.append(tt) # homerseklet
kappa_T.append(poly1p2/poly3p2/tt)
# kappa_S kompreszibilitas
# Low temperature approximation
Npoint =10
tmaxL=0.5
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
kappaT_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
kappaT_approxL.append(3/2*(1-pi**2/12 *tt**2) ) # kappa_S
# High temperature approximation
Npoint =20
tminH=1.7
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
kappaT_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
kappaT_approxH.append(1/tt ) # kappa_S
figsize(xfig_meret,yfig_meret)
plot(Tlist,kappa_T,label=r'$\kappa_T(T)$',lw=3,color='red')
plot(Tlist_Low,kappaT_approxL,
label=r'$\kappa_{T,\mathrm{low}} \approx \frac{3}{2} \left(1-\frac{\pi^2}{12} \, t^2 \right)$',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist_High,kappaT_approxH,color='green', lw=3,linestyle='--',
label=r'$\kappa_{T,\mathrm{high}} \approx \frac{1}{t}$')
legend(loc='upper right',fontsize=legend_meret)
xlabel('$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\kappa_T(T)\, n k_B T_\mathrm{F}$',fontsize=xylabel_meret,rotation ='vertical')
# Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,tmaxH)
ylim(0,1.6)
ax = gca()
ax.yaxis.set_label_coords(-.05, 0.45); # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_60.eps'); # Abra kimentese
$\alpha_T =\frac{1}{V}\, \left. \frac{\partial V}{\partial T}\right| _{p,N}$
Magashőmérsékleti közelítésben $\alpha_T^{\mathrm{klassz}}(T) = 1/T$.
Npoint =500
logzmax= 27
logzmin=-1
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
alpha=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
poly1p2=-float(mpmath.polylog(.5,-z).real)
except:
poly1p2=fsz(.5,z)
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
Tlist.append(tt) # homerseklet
alpha.append((5/2*poly5p2*poly1p2/(poly3p2)**2-3/2)/tt)
# alpha_T hotagulasi egyutthato
# Low temperature approximation
Npoint =50
tmaxL=0.25
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
alpha_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
alpha_approxL.append(pi**2/2 *tt ) # alpha
# High temperature approximation
Npoint =50
tminH=1.2
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
alpha_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
alpha_approxH.append(1/tt -5*tt**(-5/2)/6/sqrt(2*pi) ) # alpha
figsize(xfig_meret,yfig_meret)
plot(Tlist,alpha,label=r'$\alpha_T(T)$',lw=3,color='red')
plot(Tlist_Low,alpha_approxL,
label=r'$\alpha_{T,\mathrm{low}} \approx \frac{\pi^2}{2} \, t$',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist_High,alpha_approxH,color='green', lw=3,linestyle='--',
label=r'$\alpha_{T,\mathrm{high}} \approx \frac{1}{t}-\frac{5 t^{-5/2}}{6\sqrt{2\pi}}$')
legend(loc='upper right',fontsize=legend_meret)
xlabel('$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$\alpha_T(T)\, n k_B T_\mathrm{F}$',fontsize=xylabel_meret,rotation ='vertical')
# Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,tmaxH)
ylim(0,1.1)
ax = gca()
ax.yaxis.set_label_coords(-.05, 0.45); # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_65.eps'); # Abra kimentese
$v_{\mathrm{hang}}(T) =\sqrt{\left. \frac{\partial p}{\partial \varrho}\right|_{S,N}} = \sqrt{\frac{V}{m N}\, \frac{1}{\kappa_S}}$, ahol $\varrho = m N/V$ a tömegsűrűség.
Npoint =500
logzmax= 27
logzmin=-1
#zlist=linspace(zmin,zmax,Npoint) #mintavételezési pontok legyártása
zlist=logspace(logzmin,logzmax,num=Npoint) # z in logaritmic scale
Tlist=[]
vhang=[]
for i in range(0,len(zlist)):
z=zlist[i]
try:
poly3p2=-float(mpmath.polylog(1.5,-z).real)
poly5p2=-float(mpmath.polylog(2.5,-z).real)
except:
poly3p2=fsz(1.5,z)
poly5p2=fsz(2.5,z)
tt=(4/3/(sqrt(pi))/poly3p2)**(2/3)
Tlist.append(tt) # homerseklet
vhang.append(sqrt(5/3*tt*poly5p2/poly3p2)) # v_hang hangsebesseg
# Low temperature approximation
Npoint =20
tmaxL=0.45
Tlist_Low=linspace(0.0,tmaxL,Npoint) #mintavételezési pontok legyártása
vhang_approxL=[]
for i in range(0,len(Tlist_Low)):
tt=Tlist_Low[i]
vhang_approxL.append(2/sqrt(6)*(1+5*pi**2/24 *tt**2) ) # vhang
# High temperature approximation
Npoint =50
tminH=0.2
tmaxH=Tlist[0]
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
vhang_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
vhang_approxH.append(sqrt(10/3/pi)/12*(1/tt + 12* sqrt(tt*pi/2))) # vhang
figsize(xfig_meret,yfig_meret)
plot(Tlist,vhang,label=r'$v_{\mathrm{hang}}(T)$',lw=3,color='red')
plot(Tlist_Low,vhang_approxL,
label=r'$v_{\mathrm{hang,low}} \approx \frac{2}{\sqrt{6}}\, \left(1+\frac{5\pi^2}{24} t^2\right)$',
lw=1,ls='-',marker='o',color='blue',markersize=4)
plot(Tlist_High,vhang_approxH,color='green', lw=3,linestyle='--',
label=r'$v_{\mathrm{hang,high}} \approx \sqrt{\frac{5 t}{3}}+ \frac{1}{6}\, \sqrt{\frac{5}{6\pi}}\, \frac{1}{t}$')
legend(loc='lower right',fontsize=legend_meret)
xlabel('$t={T}/{T_\mathrm{F}}$',fontsize=xylabel_meret)
ylabel(r'$v_{\mathrm{hang}}(T)/\sqrt{k_B T_\mathrm{F}/m} $',fontsize=xylabel_meret,rotation ='vertical')
# Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
#xlim(0,tmaxH)
xlim(0,2)
ylim(0,2)
ax = gca()
ax.yaxis.set_label_coords(-.05, 0.45); # ylabel position
grid()
#savefig('Fig_Fermi_gas/fig_Fermi-gaz_75.eps'); # Abra kimentese
R. K. Pathria: Statistical Mechanics, 2nd Edition, 1996, Bunerworth-Heinemann Linacre House
Linda E. Reichl: A Modern Course in Statistical Physics 2rd Edition, 1998, Wiley-VCH
Franz Schwabl: Statistical Mechanics, 2000, Springer-Verlag, Berlin
K. Huang: Statistical Mechanics, 2nd Edition, 1987, John Wiley & Sons